package services

import (
	"ai/config"
	"ai/models"

	"gorm.io/gorm"
)

type RiskService struct {
	db *gorm.DB
}

func NewRiskService() *RiskService {
	return &RiskService{db: config.DB}
}

func (s *RiskService) CreateOrGetRisk(risk *models.Risk) (*models.Risk, error) {
	// 检查是否已存在
	var existingRisk models.Risk
	err := s.db.Where("id_card = ?", risk.IDCard).First(&existingRisk).Error

	// 如果已存在，返回现有记录
	if err == nil {
		return &existingRisk, nil
	}

	// 如果是其他错误（非"未找到记录"错误），返回错误
	if err != gorm.ErrRecordNotFound {
		return nil, err
	}

	// 不存在则创建新记录
	err = s.db.Create(risk).Error
	if err != nil {
		return nil, err
	}

	return risk, nil
}
